home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / e / amigae21b.lha / Amiga_E_v2.1b / Sources / Examples / 24bitColourDemo.e next >
Text File  |  1992-09-02  |  2KB  |  58 lines

  1. /* 24bit color demo. works only on AGA machines with kick3 */
  2.  
  3. OPT OSVERSION=39
  4.  
  5. CONST X=319, Y=255
  6.  
  7. DEF rast,s,win,x,y,z
  8.  
  9. PROC main()
  10.   IF s:=OpenS(X+1,Y+1,8,0,'bla')
  11.     rast:=stdrast         /* needed for fullcolour() */
  12.     IF win:=OpenW(0,0,X+1,Y+1,0,0,'bla',s,15,0)
  13.       FOR x:=0 TO 255 DO fullcolour(x,x,x,x)
  14.       FOR y:=0 TO Y DO Line(0,y,63,y,y AND $FF)
  15.       FOR y:=0 TO Y DO Line(64,y,127,y,y AND $FE)
  16.       FOR y:=0 TO Y DO Line(128,y,191,y,y AND $FC)
  17.       FOR y:=0 TO Y DO Line(192,y,255,y,y AND $F8)
  18.       FOR y:=0 TO Y DO Line(256,y,319,y,y AND $F0)
  19.       SetDrMd(stdrast,0)
  20.       TextF(0,20,' Press leftMB on some (x,y) spot')
  21.       TextF(0,30,' rightMB to leave.')
  22.       TextF(0,50,' #of colours:')
  23.       TextF(0,60,'   256     128     64      32      16   ')
  24.       TextF(0,80,' #bits colour:')
  25.       TextF(0,90,'   24      21      18      15      12   ')
  26.       TextF(0,100,'   AGA     AGA     AGA     AGA     ECS  ')
  27.       WHILE Mouse()<>2
  28.         IF Mouse()=1
  29.           y:=MouseX(win)*4/5
  30.           z:=MouseY(win)
  31.           FOR x:=0 TO 255
  32.             fullcolour(x,y,x,z)
  33.           ENDFOR
  34.         ENDIF
  35.       ENDWHILE
  36.       CloseW(win)
  37.     ENDIF
  38.     CloseS(s)
  39.   ENDIF
  40. ENDPROC
  41.  
  42. PROC fullcolour(nr,r,g,b)    /* a replacement for SetRGB32()   */
  43.   MOVE.L rast,A0        /* as the modules for 3.0 weren't */
  44.   SUB.L  #40,A0            /* available yet.                 */
  45.   MOVE.L nr,D0
  46.   MOVE.L r,D1
  47.   SWAP   D1
  48.   LSL.L  #8,D1            /* shift RGB to 32bit */
  49.   MOVE.L g,D2
  50.   SWAP   D2
  51.   LSL.L  #8,D2
  52.   MOVE.L b,D3
  53.   SWAP   D3
  54.   LSL.L  #8,D3
  55.   MOVE.L gfxbase,A6
  56.   JSR    -$354(A6)        /* SetRGB32(rast,nr,r32,g32,b32) */
  57. ENDPROC
  58.